import request from "@/utils/api";

const BASE_URL = "/product/brand";

const ProductBrandAPI = {
  // 获取品牌列表
  getBrandList(): Promise<Brand[]> {
    return request<any, Brand[]>({
      url: `${BASE_URL}/list`,
      method: "get",
    });
  },

  // 获取品牌列表
  getBrandPage(params: BrandPageReqVo): Promise<TableDataInfo<Brand>> {
    return request<any, TableDataInfo<Brand>>({
      url: `${BASE_URL}/getBrandPage`,
      method: "post",
      data: params,
    });
  },

  // 根据ID获取品牌
  getBrandById(brandId: string | number): Promise<Brand> {
    return request<any, Brand>({
      url: `${BASE_URL}/getBrandById/${brandId}`,
      method: "get",
    });
  },

  // 新增品牌
  addBrand(brand: Brand): Promise<void> {
    return request<any, void>({
      url: `${BASE_URL}/addBrand`,
      method: "post",
      data: brand,
    });
  },

  // 更新品牌
  updateBrand(brand: Brand): Promise<void> {
    return request<any, void>({
      url: `${BASE_URL}/updateBrand`,
      method: "post",
      data: brand,
    });
  },

  // 删除品牌（支持批量）
  removeBrandByIds(ids: string[]): Promise<void> {
    return request<any, void>({
      url: `${BASE_URL}/removeBrandByIds`,
      method: "post",
      data: ids,
    });
  },
};

export default ProductBrandAPI;

export interface Brand {
  /** 品牌ID */
  brandId?: string;
  /** 品牌名称 */
  name?: string;
  /** 品牌logo */
  logo?: string;
  /** 品牌介绍 */
  description?: string;
  /** 显示状态[0-不显示，1显示] */
  showStatus?: string;
  /** 检索首字母 */
  firstLetter?: string;
  /** 排序 */
  sort?: string;
}

export interface BrandPageReqVo {
  /** 当前页，默认为第一页 */
  pageNum: number;
  /** 每页的数量，默认为10 */
  pageSize: number;
  /** 检索关键字（品牌名称或描述） */
  keywords?: string;
}

export interface TableDataInfo<T> {
  /** 当前页码 */
  pageNum?: number;
  /** 每页数量 */
  pageSize?: number;
  /** 总记录数 */
  total: number;
  /** 总页数 */
  totalPage?: number;
  /** 内容 */
  records: T[];
}
